Estoy usando la pestaña de red en Google Chrome para ver cómo se obtiene un script. Noté que incluso después de establecer el estado, el tiempo continúa cargándose. ¿Porqué es eso? ¿Es esto esperado?
Por ejemplo, cuando el estado cambia a 200, el temporizador es de 6,06 s:
Después de unos segundos, el tiempo sigue corriendo también si el estado es 200:
Después de esperar más segundos
Este es mi código:
const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 10000); fetch(`${host}/asset-manifest.json`, { signal: controller.signal }) .then((res) => res.json()) .then((manifest) => { const script = document.createElement("script"); script.id = scriptId; script.crossOrigin = ""; script.async = true; script.src = (process.env.REACT_APP_ENV === "dev" ? host : "") + manifest.files["main.js"]; script.onload = renderMicroFrontend; document.head.appendChild(script); // THIS IS THE LINE THAT LOAD THE SCRIPT if (manifest.files["main.css"]) { const link = document.createElement("link"); link.href = (process.env.REACT_APP_ENV === "dev" ? host : "") + manifest.files["main.css"]; link.rel = "stylesheet"; document.head.appendChild(link); } clearTimeout(timeoutId); }) .catch((exc) => { setLoading(false); exc instanceof DOMException ? history.push("/timeout") : history.push("/notfound"); });